package com.itheima.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.mapper.UserMapper;
import com.itheima.pojo.Employee;
import com.itheima.pojo.R;
import com.itheima.pojo.UserDto;
import com.itheima.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;


    @Override
    public R loginUser(UserDto user) {
        /**
         * ②. 根据页面提交的用户名username查询数据库中员工数据信息
         *
         * ③. 如果没有查询到, 则返回登录失败结果
         *
         * ④. 密码比对，如果不一致, 则返回登录失败结果
         *
         * ⑤. 查看员工状态，如果为已禁用状态，则返回员工已禁用结果
         *
         * ⑥. 登录成功，将员工id存入Session, 并返回登录成功结果
         */
        //②. 根据页面提交的用户名username查询数据库中员工数据信息
        //LambdaQueryWrapper  plus 条件查询对象
        LambdaQueryWrapper<Employee> wapper = new LambdaQueryWrapper<>();
        wapper.eq(Employee::getUsername,user.getUsername());
        Employee employee = userMapper.selectOne(wapper);
        //③. 如果没有查询到, 则返回登录失败结果
        if(employee == null){
            return R.error("用户不存在");
        }
        //④. 密码比对，如果不一致, 则返回登录失败结果
        if(!employee.getPassword() .equals(user.getPassword())){
            return R.error("密码错误..");
        }
        //⑤. 查看员工状态，如果为已禁用状态，则返回员工已禁用结果
        if(employee.getStatus() == 0){
            return R.error("用户已禁用..");
        }
        //⑥. 登录成功，将员工id存入Session, 并返回登录成功结果
        return R.success(employee);
    }
}
